16 research outputs found

    Liveness-Driven Random Program Generation

    Get PDF
    Randomly generated programs are popular for testing compilers and program analysis tools, with hundreds of bugs in real-world C compilers found by random testing. However, existing random program generators may generate large amounts of dead code (computations whose result is never used). This leaves relatively little code to exercise a target compiler's more complex optimizations. To address this shortcoming, we introduce liveness-driven random program generation. In this approach the random program is constructed bottom-up, guided by a simultaneous structural data-flow analysis to ensure that the generator never generates dead code. The algorithm is implemented as a plugin for the Frama-C framework. We evaluate it in comparison to Csmith, the standard random C program generator. Our tool generates programs that compile to more machine code with a more complex instruction mix.Comment: Pre-proceedings paper presented at the 27th International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR 2017), Namur, Belgium, 10-12 October 2017 (arXiv:1708.07854

    Clustering Algorithms: Their Application to Gene Expression Data

    Get PDF
    Gene expression data hide vital information required to understand the biological process that takes place in a particular organism in relation to its environment. Deciphering the hidden patterns in gene expression data proffers a prodigious preference to strengthen the understanding of functional genomics. The complexity of biological networks and the volume of genes present increase the challenges of comprehending and interpretation of the resulting mass of data, which consists of millions of measurements; these data also inhibit vagueness, imprecision, and noise. Therefore, the use of clustering techniques is a first step toward addressing these challenges, which is essential in the data mining process to reveal natural structures and iden-tify interesting patterns in the underlying data. The clustering of gene expression data has been proven to be useful in making known the natural structure inherent in gene expression data, understanding gene functions, cellular processes, and subtypes of cells, mining useful information from noisy data, and understanding gene regulation. The other benefit of clustering gene expression data is the identification of homology, which is very important in vaccine design. This review examines the various clustering algorithms applicable to the gene expression data in order to discover and provide useful knowledge of the appropriate clustering technique that will guarantee stability and high degree of accuracy in its analysis procedure

    Review of rippling

    No full text

    Review of "Theoretical and Experimental DNA Computation by M. Amos," Springer-Verlag Berlin Heidelberg, 2005

    No full text

    A parallelizing compiler for Pascal

    No full text
    A parallelizing compiler takes as its input a program in a sequential language such as FORTRAN or Pascal and after extracting parallelism which is implicit in it, generates code which is suitable for execution on a parallel processor. The authors have used Pascal for their compiler as it has extra features such as recursion, pointers, record structures and nesting of procedures. The aim is to extract the maximum parallelism in a reasonable time. Instead of flowgraphs, the concept of boxgraphs has been developed and implemented. An algorithm has been implemented to carry out simple and interprocedural dataflow analysis, array subscript analysis, to detect parallelism in boxgraphs and to convert them into boxgraphs depicting parallelism explicitly. The compiler generates code for the ORG Supermax machine, a shared memory multiprocessor with two 68020 processors running on the UNIX operating system V.3 (38 refs.
    corecore